package com.ljh.myrpc.serializer;

import java.io.IOException;

/**
 * 序列化接口
 *
 */
public interface Serializer {

    /**
     * 序列化
     *
     * @param obj 待序列化对象
     * @return 序列化后的字节数组
     */
    <T> byte[] serialize(T obj) throws IOException;

    /**
     * 反序列化
     *
     * @param bytes 待反序列化的字节数组
     * @param clazz 目标类类型
     * @param <T>   泛型类型
     * @return 反序列化后的对象
     */
    <T> T deserialize(byte[] bytes, Class<T> clazz) throws IOException;
}
